package com.chalk.dao;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.chalk.model.SysPermission;
import com.chalk.vo.MenuTree;
import com.chalk.vo.SysPermissionVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 系统权限表(SysPermission)表数据库访问层
 *
 * @author maxiaoqiang
 * @since 2019-03-28 17:19:38
 */
@Mapper
public interface SysPermissionDao extends BaseMapper <SysPermission> {

    /*自定义接口*/

    /**
     * 根据主键批量(逻辑)删除
     *
     * @param ids
     * @return
     */
    int deleteBatchByPrimaryKey(String[] ids);


    List <SysPermissionVo> selectListVo(Map <Object, Object> params);

    /**
     * 条件查询菜单树
     *
     * @param param
     * @return
     */
    List <MenuTree> getMenusByParentId(@Param("param") MenuTree param);

    List <MenuTree> getMenusByRoleId(String roleId);

    /**
     * 查询菜单并携带用户标识
     *
     * @param param
     * @return
     */
    List <MenuTree> selectMenuMarkTree(@Param("param") MenuTree param);

    /**
     * 查询菜单并携带用户标识
     *
     * @param param
     * @return
     */
    List <MenuTree> selectMenuMarkTreeUser(@Param("param") MenuTree param);

    /**
     * 查询所有菜单
     *
     * @param id
     * @param id
     * @return
     */
    List <MenuTree> getTree(@Param("id") String id);

    /**
     * 根据roleId查询使用菜单
     *
     * @param id
     * @param adminId
     * @return
     */
    List <MenuTree> getTreeForRoleId(@Param("id") String id, @Param("adminId") String adminId);


}